﻿using AccesoData;
using Entidades;
using NUnit.Framework;

namespace Pruebas.PruebasDao
{
    [TestFixture]
    class PruebaDaoLugar
    {
        [TestCase]
        public void AgregarLugarTest()
        {
            Lugar miLugar = FabricaEntidades.ObtenerLugar();

            miLugar.Id = -1;
            miLugar.Nombre = "PruebaLugar";
            miLugar.Tipo = "Tipo1";
            miLugar.IdLugar = 1;

            int id = DAO.ObtenerFabrica(1).ObtenerDaoLugar().AgregarLugar(miLugar);
            miLugar.Id = id;
            Assert.AreNotEqual(-1,id);
            Lugar prueba = DAO.ObtenerFabrica(1).ObtenerDaoLugar().ObtenerLugarId(id);
            
            Assert.AreEqual(miLugar.Nombre,prueba.Nombre,"los Nombres no son iguales");
            Assert.AreEqual(miLugar.IdLugar,prueba.IdLugar,"los id de lugares no son iguales");
            Assert.AreEqual(miLugar.Tipo,prueba.Tipo,"no tipo");
            Assert.NotNull(prueba,"prueba es nulo");
        }

        [TestCase]
        public void PruebaObtenerLugarNombreTipo()
        {
            Lugar miLugar = FabricaEntidades.ObtenerLugar();

            miLugar.Id = -1;
            miLugar.Nombre = "PruebaLugar";
            miLugar.Tipo = "Tipo1";
            miLugar.IdLugar = -1;

            miLugar.Id = DAO.ObtenerFabrica(1).ObtenerDaoLugar().AgregarLugar(miLugar);

            int id = DAO.ObtenerFabrica(1).ObtenerDaoLugar().ObtenerLugarNombreTipo(miLugar);
            
            Assert.AreEqual(id,miLugar.Id);

            miLugar.Nombre = "nose";

            id = DAO.ObtenerFabrica(1).ObtenerDaoLugar().ObtenerLugarNombreTipo(miLugar);
            Assert.AreEqual(id,0);
        }

    }
}
